"""
Temu运营工具GUI应用程序
功能：提供图片格式转换、营销图包生成、数据表格导出等功能
"""

# 导入必要模块
import tkinter as tk
from tkinter import ttk, filedialog  # ttk提供现代风格组件
import to_jpg  # 自定义模块，处理图片格式转换


class TemuApp:
    """主应用程序类，负责构建GUI界面和处理业务逻辑"""

    def __init__(self, root):
        """初始化应用程序窗口和状态"""
        self.root = root
        # 窗口基本配置
        self.root.title("小成-运营专用")  # 窗口标题
        self.root.geometry("600x200")  # 初始窗口尺寸
        self.root.minsize(550, 180)  # 设置最小窗口尺寸（示例，原代码无）

        # 初始化控件变量
        self.folder_path = tk.StringVar()  # 存储选择的文件夹路径
        self.category_var = tk.StringVar(value="TEMU男装")  # 存储选择的商品分类
        self.folder_path.set("")  # 初始化路径为空

        # 构建用户界面
        self.setup_ui()

    def setup_ui(self):
        """构建用户界面组件"""
        # 样式配置--------------------------------------------------------------
        style = ttk.Style()
        style.theme_use('clam')  # 使用'clam'主题（支持现代控件样式）
        # 配置按钮样式
        style.configure("TButton",
                        padding=(0, 2),  # 内边距（水平，垂直）
                        background="#409EFF",  # 背景色（腾讯蓝）
                        foreground="white",  # 文字颜色
                        borderwidth=0,  # 边框宽度
                        font=('微软雅黑', 10, 'bold'))  # 字体设置

        # 配置下拉框样式
        style.configure("TCombobox",
                        padding=(3, 2),  # 输入框内边距
                        font=('微软雅黑', 10))  # 字体设置

        # 主容器布局------------------------------------------------------------
        main_frame = ttk.Frame(self.root, padding=20)  # 创建带内边距的主容器
        main_frame.pack(expand=True, fill=tk.BOTH)  # 填充整个窗口

        # 标题标签
        ttk.Label(main_frame,
                  text="半托-TEMU批测款-图包支持",
                  font=('微软雅黑', 12, 'bold')).pack(pady=5)

        # 路径选择区域----------------------------------------------------------
        path_frame = ttk.Frame(main_frame)
        path_frame.pack(fill=tk.X, pady=10)  # 水平填充，垂直间距10px

        # 分类选择下拉框
        self.category_combo = ttk.Combobox(
            path_frame,
            textvariable=self.category_var,  # 绑定分类变量
            values=["TEMU男装", "TEMU女装", "TEMU童装"],  # 可选分类
            state="readonly",  # 禁止直接输入
            width=12
        )
        self.category_combo.pack(side=tk.LEFT, padx=(0, 10))  # 左侧布局，右边距10px

        # 路径输入框
        self.entry = ttk.Entry(
            path_frame,
            textvariable=self.folder_path,  # 绑定路径变量
            width=40,  # 字符宽度
            font=('微软雅黑', 10)
        )
        self.entry.pack(side=tk.LEFT, padx=5)

        # 文件夹选择按钮
        ttk.Button(
            path_frame,
            text="选择",
            command=self.select_folder,  # 绑定选择文件夹方法
            width=8
        ).pack(side=tk.LEFT)

        # 功能按钮区域----------------------------------------------------------
        btn_frame = ttk.Frame(main_frame)
        btn_frame.pack(pady=15)  # 垂直间距15px

        # 功能按钮配置（文本，回调函数）
        buttons = [
            ("格式转换", self.format_convert),  # 调用图片转换功能
            ("图包生成", self.generate_package),  # 生成营销图包
            ("表格导出", self.export_excel)  # 导出Excel表格
        ]

        # 循环创建功能按钮
        for text, cmd in buttons:
            ttk.Button(
                btn_frame,
                text=text,
                command=cmd,
                width=15
            ).pack(side=tk.LEFT, padx=8)  # 水平排列，间距8px

    def select_folder(self):
        """打开文件夹选择对话框并更新路径"""
        path = filedialog.askdirectory()  # 弹出系统文件夹选择对话框
        if path:  # 如果用户选择了路径（未取消）
            self.folder_path.set(path)  # 更新路径变量

    # 业务逻辑方法-------------------------------------------------------------

    def format_convert(self):
        """执行图片格式转换"""
        # 调用to_jpg模块的转换方法，传入当前选择的路径
        to_jpg.convert_images_to_jpg(self.folder_path.get())

    def generate_package(self):
        """生成营销图包（示例功能）"""
        # 当前实现仅打印日志，实际应添加生成逻辑
        print(f"分类[{self.category_var.get()}] 图包生成路径: {self.folder_path.get()}")

    def export_excel(self):
        """导出Excel表格（示例功能）"""
        # 当前实现仅打印日志，实际应添加导出逻辑
        print(f"分类[{self.category_var.get()}] 表格导出路径: {self.folder_path.get()}")


if __name__ == "__main__":
    """程序入口"""
    root = tk.Tk()  # 创建根窗口
    app = TemuApp(root)  # 实例化应用程序
    root.mainloop()  # 启动主事件循环